Dataset Previews
First, initialize by adding tools and declare floating type
using GriddingMachine
using PkgUtility
using Plots
using Plots.PlotMeasures
ENV["GKSwstype"]="100";
FT = Float32;
# use this to fix the problem in generated preview.jl file
F1 = joinpath(@__DIR__, "../../Artifacts.toml");
F2 = joinpath(@__DIR__, "../../../Artifacts.toml");
GRIDDINGMACHINE_ARTIFACTS = (isfile(F1) ? F1 : F2);
predownload_artifact.(["CH_20X_1Y_V1",
"CHL_2X_7D_V1",
"CI_12X_1Y_V1",
"CI_PFT_2X_1Y_V1",
"GPP_MPI_2X_1M_2005_V1",
"GPP_VPM_5X_8D_2005_V1",
"LAI_4X_1M_V1",
"LM_ERA5_4X_1Y_V1",
"LNC_2X_1Y_V1",
"LPC_2X_1Y_V1",
"NDVI_AVHRR_20X_1M_2018_V1",
"NIRO_AVHRR_20X_1M_2018_V1",
"NIRV_AVHRR_20X_1M_2018_V1",
"RIVER_4X_1Y_V1",
"SIF740_TROPOMI_1X_1M_2018_V1",
"SLA_2X_1Y_V1",
"TD_12X_1Y_V1",
"VMAX_CICA_2X_1Y_V1",
"WD_2X_1Y_V1",
"NPP_MODIS_1X_1Y"],
GRIDDINGMACHINE_ARTIFACTS);#=#=# ##O#- # ##O=# # #=#=-# # -#O#- # # -=#=# # # -=O#- # # # 0.4% # 2.7% ### 5.2% ######### 13.8% ################################## 47.3% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # -#O#- # # 0.2% 1.1% # 2.8% ###### 9.3% ####################### 32.4% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # -#O#- # # -=#=# # # 1.2% #### 5.6% ########### 16.7% ############################ 40.0% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # -#O#- # # -=#=# # # # 2.0% ####### 10.5% ##################### 29.2% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # 0.1% 0.8% # 1.6% ### 4.2% ########### 15.4% ###################################### 54.2% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # 0.1% 0.3% 0.7% # 1.7% #### 5.9% ############### 21.9% ############################# 40.5% ######################################## 56.8% ################################################ 67.4% ###################################################### 76.3% ############################################################## 86.6% ##################################################################### 97.0% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # -#O#- # # 0.2% 1.4% ## 3.1% ######### 12.8% ################################### 49.7% ###################################################################### 97.3% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # ## 3.0% ############ 17.5% ################################## 48.3% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # ## 3.7% ################ 22.9% ###################################################### 75.9% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # ## 3.6% ################ 22.5% ########################### 38.8% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # 0.0% 0.1% 0.1% 0.3% 1.1% ## 3.9% ##### 7.1% ###### 9.3% ####### 10.4% ######### 13.0% ########## 14.5% ########### 16.3% ############# 18.1% ############## 20.0% ############### 21.8% ################# 23.8% ################## 25.7% ################### 27.6% ##################### 29.6% ###################### 31.6% ######################## 33.5% ######################### 35.5% ########################### 37.5% ############################ 39.5% ############################# 41.5% ############################### 43.5% ################################ 45.6% ################################## 47.6% ################################### 49.7% ##################################### 51.7% ###################################### 53.8% ######################################## 55.9% ######################################### 57.9% ########################################### 60.0% ############################################ 62.1% ############################################## 64.3% ############################################### 66.3% ################################################# 68.3% ################################################## 70.5% ################################################### 71.8% #################################################### 73.3% ##################################################### 74.8% ###################################################### 76.3% ######################################################## 77.9% ######################################################### 79.5% ########################################################## 81.0% ########################################################### 82.6% ############################################################ 84.2% ############################################################# 85.8% ############################################################## 87.5% ################################################################ 89.1% ################################################################# 90.7% ################################################################## 92.3% ################################################################### 94.0% #################################################################### 95.6% ###################################################################### 97.3% ####################################################################### 99.0% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # 0.0% 0.1% 0.1% 0.5% # 1.9% ## 3.8% #### 6.8% ###### 9.6% ######## 12.1% ######### 13.6% ########## 15.0% ########### 15.8% ############ 17.8% ############# 19.0% ############## 20.2% ############### 21.4% ################ 22.7% ################# 23.9% ################## 25.2% ################### 26.4% ################### 27.7% #################### 29.0% ##################### 30.3% ###################### 31.5% ####################### 32.9% ######################## 34.2% ######################### 35.5% ########################## 36.8% ########################### 38.1% ############################ 39.5% ############################# 40.8% ############################## 42.1% ############################## 42.8% ############################### 44.4% ################################ 45.4% ################################# 46.4% ################################## 47.3% ################################## 48.3% ################################### 49.3% #################################### 50.4% #################################### 51.4% ##################################### 52.4% ###################################### 53.4% ####################################### 54.4% ####################################### 55.5% ######################################## 56.5% ######################################### 57.6% ########################################## 58.6% ########################################## 59.7% ########################################### 60.7% ############################################ 61.8% ############################################# 62.9% ############################################## 64.0% ############################################## 65.1% ############################################### 66.2% ################################################ 67.2% ################################################# 68.3% ################################################# 69.4% ################################################## 70.6% ################################################### 71.7% #################################################### 72.8% ##################################################### 73.9% ###################################################### 75.0% ###################################################### 76.2% ####################################################### 77.3% ######################################################## 78.4% ######################################################### 79.6% ########################################################## 80.7% ########################################################## 81.8% ########################################################### 82.9% ############################################################ 84.0% ############################################################# 85.2% ############################################################## 86.3% ############################################################## 87.5% ############################################################### 88.0% ################################################################ 89.4% ################################################################ 90.2% ################################################################# 91.0% ################################################################## 91.9% ################################################################## 92.6% ################################################################### 93.5% ################################################################### 94.4% #################################################################### 95.2% ##################################################################### 96.1% ##################################################################### 96.9% ###################################################################### 97.8% ####################################################################### 98.7% ####################################################################### 99.6% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # 0.0% 0.1% 0.1% 0.3% 1.0% ## 4.0% ##### 7.8% ######## 11.6% ########### 15.4% ############# 19.1% ################ 22.8% ################### 26.6% ##################### 30.4% ######################## 34.2% ########################### 38.0% ############################## 41.7% ################################ 45.5% ################################### 49.3% ###################################### 53.1% ######################################## 56.8% ########################################### 60.6% ############################################## 64.3% ################################################# 68.1% ################################################### 71.9% ###################################################### 75.6% ######################################################### 79.4% ########################################################### 83.1% ############################################################## 86.9% ################################################################# 90.7% ################################################################### 94.4% ###################################################################### 98.2% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # 0.3% # 1.6% ## 4.1% ############ 16.7% ############################################# 63.1% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # 0.2% 1.0% # 2.6% ##### 7.8% ################### 26.5% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # ## 3.6% ################ 22.3% ###################################### 52.9% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # 0.2% # 1.8% ## 3.0% #### 6.5% ############# 18.1% ############################################### 66.2% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # ##### 7.2% #################### 28.0% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # # 2.8% ############ 17.1% ######################## 33.4% ######################################################################## 100.0% #=#=# ##O#- # ##O=# # #=#=-# # -#O#- # # ###################### 30.9% ######################################################################## 100.0%
Then, define a function to plot the dataset
function preview_data(ds::GriddedDataset{FT}, ind::Int)
# preview data
return heatmap(view(ds.data,:,:,ind)',
origin="lower",
aspect_ratio=1,
xticks=[],
yticks=[],
c=:viridis,
size=(700,300),
framestyle=:none)
end
function preview_data(ds::GriddedDataset{FT}, ind::Int, clim::Tuple)
# preview data
return heatmap(view(ds.data,:,:,ind)',
origin="lower",
aspect_ratio=1,
xticks=[],
yticks=[],
c=:viridis,
clim=clim,
size=(700,300),
framestyle=:none)
endpreview_data (generic function with 2 methods)
Leaf level datasets
Leaf chlorophyll content
LCH_LUT = load_LUT(LeafChlorophyll{FT}());
mask_LUT!(LCH_LUT, FT[0,Inf]);
LCH_LUT = regrid_LUT(LCH_LUT, Int(size(LCH_LUT.data,2)/180));
anim = @animate for i ∈ 1:size(LCH_LUT.data,3)
preview_data(LCH_LUT, i, (0,80));
end
gif(anim, fps=5)Leaf nitrogen content
LNC_LUT = load_LUT(LeafNitrogen{FT}());
mask_LUT!(LNC_LUT, FT[0,Inf]);
LNC_LUT = regrid_LUT(LNC_LUT, Int(size(LNC_LUT.data,2)/180));
preview_data(LNC_LUT, 1)
Leaf phosphorus content
LPC_LUT = load_LUT(LeafPhosphorus{FT}());
mask_LUT!(LPC_LUT, FT[0,Inf]);
LPC_LUT = regrid_LUT(LPC_LUT, Int(size(LPC_LUT.data,2)/180));
preview_data(LPC_LUT, 1)
Specific leaf area
SLA_LUT = load_LUT(LeafSLA{FT}());
mask_LUT!(SLA_LUT, FT[0,Inf]);
SLA_LUT = regrid_LUT(SLA_LUT, Int(size(SLA_LUT.data,2)/180));
preview_data(SLA_LUT, 1)
Vcmax
VCM_LUT = load_LUT(VcmaxOptimalCiCa{FT}());
mask_LUT!(VCM_LUT, FT[0,Inf]);
VCM_LUT = regrid_LUT(VCM_LUT, Int(size(VCM_LUT.data,2)/180));
preview_data(VCM_LUT, 1)
Stand level datasets
Canopy height
CHT_LUT = load_LUT(CanopyHeightGLAS{FT}());
mask_LUT!(CHT_LUT, FT[0,Inf]);
CHT_LUT = regrid_LUT(CHT_LUT, Int(size(CHT_LUT.data,2)/180));
preview_data(CHT_LUT, 1)
Clumping index
# global clumping index
CLI_LUT = load_LUT(ClumpingIndexMODIS{FT}(), "12X", "1Y");
mask_LUT!(CLI_LUT, FT[0,1]);
CLI_LUT = regrid_LUT(CLI_LUT, Int(size(CLI_LUT.data,2)/180));
preview_data(CLI_LUT, 1, (0.4,1))
# global clumping index per PFT
CLI_LUT = load_LUT(ClumpingIndexPFT{FT}());
mask_LUT!(CLI_LUT, FT[0,1]);
CLI_LUT = regrid_LUT(CLI_LUT, Int(size(CLI_LUT.data,2)/180));
anim = @animate for i ∈ 1:size(CLI_LUT.data,3)
preview_data(CLI_LUT, i, (0.4,1));
end
gif(anim, fps=1)Gross primary productivity
# GPP MPI
GPP_LUT = load_LUT(GPPMPIv006{FT}(), 2005, "2X", "8D");
GPP_LUT = regrid_LUT(GPP_LUT, Int(size(GPP_LUT.data,2)/180));
mask_LUT!(GPP_LUT, FT[-100,Inf]);
anim = @animate for i ∈ 1:46
preview_data(GPP_LUT, i, (0,10));
end
gif(anim, fps=5)# GPP VPM
GPP_LUT = load_LUT(GPPVPMv20{FT}(), 2005, "5X", "8D");
GPP_LUT = regrid_LUT(GPP_LUT, Int(size(GPP_LUT.data,2)/180));
mask_LUT!(GPP_LUT, FT[-100,Inf]);
anim = @animate for i ∈ 1:46
preview_data(GPP_LUT, i, (0,10));
end
gif(anim, fps=5)Leaf area index
LAI_LUT = load_LUT(LAIMonthlyMean{FT}());
LAI_LUT = regrid_LUT(LAI_LUT, Int(size(LAI_LUT.data,2)/180));
anim = @animate for i ∈ 1:size(LAI_LUT.data,3)
preview_data(LAI_LUT, i, (0,6));
end
gif(anim, fps=1)Normalized difference vegetation index
NDV_LUT = load_LUT(NDVIAvhrr{FT}(), 2018, "20X", "1M");
NDV_LUT = regrid_LUT(NDV_LUT, Int(size(NDV_LUT.data,2)/180));
anim = @animate for i ∈ 1:size(NDV_LUT.data,3)
preview_data(NDV_LUT, i, (0,1));
end
gif(anim, fps=1)Near infrared reflectance of vegetation
NIV_LUT = load_LUT(NIRvAvhrr{FT}(), 2018, "20X", "1M");
NIV_LUT = regrid_LUT(NIV_LUT, Int(size(NIV_LUT.data,2)/180));
anim = @animate for i ∈ 1:size(NIV_LUT.data,3)
preview_data(NIV_LUT, i, (0,1));
end
gif(anim, fps=1)Near infrared reflectance of vegetation with offset
NIO_LUT = load_LUT(NIRoAvhrr{FT}(), 2018, "20X", "1M");
NIO_LUT = regrid_LUT(NIO_LUT, Int(size(NIO_LUT.data,2)/180));
anim = @animate for i ∈ 1:size(NIO_LUT.data,3)
preview_data(NIO_LUT, i, (0,1));
end
gif(anim, fps=1)Net primary productivity
NPP_LUT = load_LUT(NPPModis{FT}());
mask_LUT!(NPP_LUT, FT[-Inf,1e19]);
NPP_LUT = regrid_LUT(NPP_LUT, Int(size(NPP_LUT.data,2)/180));
NPP_LUT.data .*= 1e9;
preview_data(NPP_LUT, 1)
Sun induced fluorescence
SIF_LUT = load_LUT(SIFTropomi740{FT}(), 2018, "1X", "1M");
mask_LUT!(SIF_LUT, FT[-100,100]);
anim = @animate for i ∈ 1:12
preview_data(SIF_LUT, i, (0,3.5));
end
gif(anim, fps=3)Tree density
TDT_LUT = load_LUT(TreeDensity{FT}(), "12X", "1Y");
mask_LUT!(TDT_LUT, FT[0,Inf]);
TDT_LUT = regrid_LUT(TDT_LUT, Int(size(TDT_LUT.data,2)/180));
preview_data(TDT_LUT, 1, (0, 150000))
Wood density
TDT_LUT = load_LUT(WoodDensity{FT}());
mask_LUT!(TDT_LUT, FT[0,Inf]);
TDT_LUT = regrid_LUT(TDT_LUT, Int(size(TDT_LUT.data,2)/180));
preview_data(TDT_LUT, 1)
Land surface
Land elevation
ELE_LUT = load_LUT(LandElevation{FT}());
mask_LUT!(ELE_LUT, FT[0,Inf]);
ELE_LUT = regrid_LUT(ELE_LUT, Int(size(ELE_LUT.data,2)/180));
preview_data(ELE_LUT, 1)
Land mask
LMK_LUT = load_LUT(LandMaskERA5{FT}());
LMK_LUT = regrid_LUT(LMK_LUT, Int(size(LMK_LUT.data,2)/180));
preview_data(LMK_LUT, 1)
River flood plain height
FLD_LUT = load_LUT(FloodPlainHeight{FT}());
mask_LUT!(FLD_LUT, FT[0,Inf]);
FLD_LUT = regrid_LUT(FLD_LUT, Int(size(FLD_LUT.data,2)/180));
preview_data(FLD_LUT, 1)
River height
RVH_LUT = load_LUT(RiverHeight{FT}());
mask_LUT!(RVH_LUT, FT[0,Inf]);
RVH_LUT = regrid_LUT(RVH_LUT, Int(size(RVH_LUT.data,2)/180));
preview_data(RVH_LUT, 1)
River width
RVW_LUT = load_LUT(RiverWidth{FT}());
mask_LUT!(RVW_LUT, FT[0,Inf]);
RVW_LUT = regrid_LUT(RVW_LUT, Int(size(RVW_LUT.data,2)/180));
preview_data(RVW_LUT, 1)
River length
RVL_LUT = load_LUT(RiverLength{FT}());
mask_LUT!(RVL_LUT, FT[0,Inf]);
RVL_LUT = regrid_LUT(RVL_LUT, Int(size(RVL_LUT.data,2)/180));
preview_data(RVL_LUT, 1)
River manning coefficient
RVM_LUT = load_LUT(LandMaskERA5{FT}());
RVM_LUT = regrid_LUT(RVM_LUT, Int(size(RVM_LUT.data,2)/180));
preview_data(RVM_LUT, 1)
River unit catchment area
UCA_LUT = load_LUT(UnitCatchmentArea{FT}());
UCA_LUT = regrid_LUT(UCA_LUT, Int(size(UCA_LUT.data,2)/180));
preview_data(UCA_LUT, 1)
This page was generated using Literate.jl.